disagg: Disagg write filecache for compaction tasks (release-nextgen-20251011)#10940
disagg: Disagg write filecache for compaction tasks (release-nextgen-20251011)#10940JaySon-Huang wants to merge 19 commits into
Conversation
Initialize FileCache and register remote cache paths for disaggregated storage nodes, and add dt_enable_write_filecache (default false) as the runtime gate for upcoming write-side local staging.
Propagate an optional DMFileBlockInputStreamBuilder hook through getPlacedStream and enable it from prepareMerge, prepareMergeDelta, and prepareSplitPhysical when dt_enable_write_filecache is set.
Introduce collectMetaV2MergedFilesForLocalRead to map read columns to deduplicated physical .merged S3 objects, with unit tests for noop, column filtering, and remote MetaV2 dedup behavior.
Download deduplicated .merged S3 objects before building DMFileReader when write FileCache local read is enabled, pin FileSegmentPtr for reader lifetime, and fall back to direct read on per-object failures.
Replace ProfileEvents with tiflash_storage_write_filecache_staging counters and staged-bytes counter, and update local staging unit tests accordingly.
Cover prepareMergeDelta, prepareMerge, and prepareSplitPhysical staging paths in SegmentTestS3, and fix FileCache test teardown to re-init S3FileCachePool so multiple gtests can run in one process.
Signed-off-by: JaySon-Huang <tshent@qq.com>
…logging Instrument prepareMergeDelta/Merge/SplitPhysical and remote DMFile upload with tiflash_storage_subtask_* metrics. Track remote upload duration in createNewStable and log stable column count in Segment::info().
Return prepare/remote upload durations from prepareMerge and prepareMergeDelta, and print them in segmentMerge/MergeDelta finish logs.
Track prepare and S3 upload durations in SplitInfo and print them in segmentSplit finish logs. Move getPlacedStream above the gtest visibility split in Segment.h.
Signed-off-by: JaySon-Huang <tshent@qq.com>
Signed-off-by: JaySon-Huang <tshent@qq.com>
Pass DownloadType into downloadImpl and print it in Download success logs.
Collect large standalone `.dat` subfiles in addition to `.merged` blobs when preparing write-side FileCache local reads, with unit test coverage.
Signed-off-by: JaySon-Huang <tshent@qq.com>
|
This cherry pick PR is for a release branch and has not yet been approved by triage owners. To merge this cherry pick:
DetailsInstructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. |
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. 🗂️ Base branches to auto review (3)
Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Repository UI Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Signed-off-by: JaySon-Huang <tshent@qq.com>
…te+mergeDeltaAll (pingcap#10898) close pingcap#10897\n\nSigned-off-by: JaySon-Huang <tshent@qq.com>
|
close as not need |
manually cherry-pick of #10937
What problem does this PR solve?
Issue Number: close #xxx
Problem Summary:
What is changed and how it works?
Check List
Tests
Side effects
Documentation
Release note